package com.felix.runoob.abstractFactory;


public class AbstractFactoryPatternDemo {

    public static void main(String[] args) {
        //获取形状工厂
        AbstractFactory commonFactory = FactoryProducer.getFactory();
        //获取形状为 Circle 的对象
        Shape shape1 = commonFactory.getClass(Cirlce.class);
        //调用 Circle 的 draw 方法
        shape1.draw();
        //获取形状为 Rectangle 的对象
        Shape shape2 = commonFactory.getClass(Rectangle.class);
        //调用 Rectangle 的 draw 方法
        shape2.draw();
        //获取形状为 Square 的对象
        Shape shape3 = commonFactory.getClass(Square.class);
        //调用 Square 的 draw 方法
        shape3.draw();
        //获取颜色为 Red 的对象
        Color color1 = commonFactory.getClass(Red.class);
        //调用 Red 的 fill 方法
        color1.fill();
        //获取颜色为 Green 的对象
        Color color2 = commonFactory.getClass(Green.class);
        //调用 Green 的 fill 方法
        color2.fill();
        //获取颜色为 Blue 的对象
        Color color3 = commonFactory.getClass(Blue.class);
        //调用 Blue 的 fill 方法
        color3.fill();
    }
}
